package com.dhcc.bpm.modules.log.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dhcc.bpm.modules.log.entity.GatewayLogMinute;
import com.dhcc.bpm.modules.log.vo.*;

import java.util.List;
import java.util.concurrent.Future;

/**
 * @ClassName IGatewayLogMinuteService.class
 * @Description 网关访问记录分钟表 服务类
 * @Author xiaFaYu
 * @Date 2019-12-16 14:16
 * @Version V1.0
 * @Copyright: 2020 东华软件 . All rights reserved.
 */
public interface IGatewayLogMinuteService extends IService<GatewayLogMinute> {

	/**
	 * @Description 自定义分页查询
	 * @Author xiafayu
	 * @Date 2020/2/24 15:50
	 * @param page
	 * @param gatewayLogMinute
	 * @return com.baomidou.mybatisplus.core.metadata.IPage<com.dhcc.bpm.modules.log.vo.GatewayLogMinuteVO>
	 **/
	IPage<GatewayLogMinuteVO> selectGatewayLogMinutePage(IPage<GatewayLogMinuteVO> page, GatewayLogMinuteVO gatewayLogMinute);

	/**
	 * @Description 查询
	 * @Author xiafayu
	 * @Date 2020/2/24 15:50
	 * @param gatewayLogMinuteVO
	 * @return java.util.List<com.dhcc.bpm.modules.log.vo.TradeVolumnVo>
	 **/
	List<TradeVolumnVo> countGatewayLogMinuteByDate(GatewayLogMinuteVO gatewayLogMinuteVO);
	List<TradeVolumnVo> countGatewayLogMinuteByDateHour(GatewayLogMinuteVO gatewayLogMinute);
	List<TradeVolumnVo> countGatewayLogMinuteByTime(GatewayLogMinuteVO gatewayLogMinute);
	IPage<TradeVolumnVo> countGatewayLogMinuteByTimeByPage(IPage<TradeVolumnVo> page,GatewayLogMinuteVO gatewayLogMinute);
	/**
	 * @Description 当日交易量统计
	 * @Author xiafayu
	 * @Date 2020/2/24 15:50
	 * @param gatewayLogMinute
	 * @return com.dhcc.bpm.modules.log.vo.TradeVolumnVo
	 **/
    TradeVolumnVo tradingVolume(GatewayLogMinute gatewayLogMinute);
    /**
     * @Description 统计
     * @Author daina
     * @Date 18:42 2020/4/22
     * @param appApiViewVo
     * @return java.util.List<com.dhcc.bpm.modules.log.vo.AppApiViewVo>
     **/
	List<AppApiViewVo> apiChartDataByMinute(AppApiViewVo appApiViewVo);

	List<AppApiViewVo> apiChartByMinute(AppApiViewVo appApiViewVo);
	/**
	 * @Description 当日机构交易量统计
	 * @Author xiafayu
	 * @Date 2020/2/24 15:50
	 * @param page
	 * @param apiRankVo
	 * @return com.baomidou.mybatisplus.core.metadata.IPage<com.dhcc.bpm.modules.log.vo.OrgaRankVo>
	 **/
	IPage<OrgaRankVo> countOrgaNum(IPage<Object> page, OrgaRankVo apiRankVo);

	/**
	 * @Description 当日产品交易量统计
	 * @Author xiafayu
	 * @Date 2020/2/24 15:51
	 * @param vo
	 * @return java.util.List<com.dhcc.bpm.modules.log.vo.AppApiViewVo>
	 **/
    List<AppApiViewVo> countProductByDate(AppApiViewVo vo);

	/**
	 * @Description 统计当日
	 * @Author xiafayu
	 * @Date 2020/2/24 15:51
	 * @param gatewayLogMinuteVO
	 * @return java.util.List<com.dhcc.bpm.modules.log.vo.TradeAppVo>
	 **/
	List<TradeAppVo> selectApiCountByDay(GatewayLogMinuteVO gatewayLogMinuteVO);

	/**
	 * @Description 统计当日
	 * @Author xiafayu
	 * @Date 2020/2/24 15:51
	 * @param gatewayLogMinuteVO
	 * @return java.util.List<com.dhcc.bpm.modules.log.vo.TradeAppVo>
	 **/
    List<TradeAppVo> selectCountByDay(GatewayLogMinuteVO gatewayLogMinuteVO);
}
